package cn.xiaohuodui.rest;

import cn.xiaohuodui.annotation.LoginUser;
import cn.xiaohuodui.exceptions.BussException;
import cn.xiaohuodui.form.good.SearchForm;
import cn.xiaohuodui.res.JsonRes;
import cn.xiaohuodui.service.GoodService;
import com.mysql.jdbc.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by TR on 2018/4/2.
 */
@RestController
@RequestMapping("/wx/goods")
public class GoodApi {

    @Autowired
    GoodService goodService;

    @RequestMapping(value = "count")
    public JsonRes<Map<String,Object>> count() {
        return goodService.count();
    }


    /**
     * 　　新品首发banner
     */
    @RequestMapping("new")
    public JsonRes<Map<String,Object>> newGoods() {
        return goodService.newGoodsBanner();
    }


    /**
     * 　　人气推荐banner
     */
    @RequestMapping("hot")
    public JsonRes<Map<String,Object>> hotGoodsBanner() {
        return goodService.hotGoodsBanner();
    }



    /**
     * 　获取某分类下的商品
     */
    @RequestMapping("category")
    public JsonRes<Map<String,Object>> category(@RequestParam("id") Integer id) {

        return goodService.getGoodsByCate(id);
    }


    /**
     * 　　获取商品列表
     * 1. 这里的前五个参数都是可选的，甚至都是空
     * 2. 用户也是可选登录，如果登录了，则记录用户的搜索关键字
     *
     */
    @RequestMapping("list")
    public JsonRes<Map<String,Object>> list(@ModelAttribute("SearchForm") SearchForm form) {
        return goodService.list(form);
    }


    /**
     * 商品详情页数据
     * 用户也是可选登录，如果登录了，则查询是否收藏，以及记录用户的足迹
     */
    @RequestMapping("detail")
    public JsonRes<Map<String,Object>> detail(@LoginUser Integer userId, Integer id) throws BussException {
        return goodService.detail(userId,id);
    }


    /**
     * 大家都在看的商品
     */
    @RequestMapping("related")
    public JsonRes<Map<String,Object>> related(Integer id) throws BussException {

        return goodService.related(id);
    }



}
